The Universal Serial Bus protocol (“USB”) provides a standard for communicating with up to 127 devices using a single, standardized communication scheme, and operates under several versions. USB 1.1 is capable of transmission speeds of 1.5 Megabits per second (“Mbps”) (a “low-speed” bus) and 12 Mbps (a “full-speed” bus, and together with a low speed bus, a “full-/low-speed” bus). USB 2.0 transmits data at 480 Mbps (a “high-speed” bus), approximately forty times faster than USB 1.1. USB 2.0 defines a multiple speed signaling environment where a single high-speed bus may support one or more full-/low-speed busses through a transaction translator (“TT”) in a USB 2.0 hub.
Under this scheme, system software (the “host controller driver” or “HCD”) must allocate and manage the bandwidth of the subordinate full-/low-speed busses. The HCD defines a single data structure (an “interrupt queue head” or “IQH”) to represent and manage traffic to a particular interrupt endpoint (a transaction between the host and a remote device) behind a given TT. The period of service for each IQH (e.g., 1, 2, 4, 8, 16 . . . 225 Ms) is defined by the pattern of access by system hardware (the “host controller”). Each time the host controller visits an IQH, the host controller may issue another request to the remote device. The HCD controls the host controller's access to an IQH by setting up a tree structure of IQHs (the “interrupt tree”) connected to the host controller's frame list. The frame list is a data structure of pointers that direct the host controller to the first work item in the frame's interrupt tree for the current micro-frame, and is accessed by the host controller on a frame-by-frame basis. Because of the difference in speed between the high-speed and full-/low-speed busses, the TT requires multiple transactions on the high-speed bus to complete a single transaction on the full-/low-speed bus. These transactions, depending on the position in the classic frame, may require the host controller to visit an IQH in consecutive millisecond frames. Currently, the only position in the interrupt tree that is accessible from consecutive frames is the position at period one.
When an IQH is promoted to period one, i.e., period promotion, it consumes at least N times more bandwidth than when operating at its normal period (where N is the normal period of the device, typically 8). This increased bandwidth usage limits the number of devices that can operate behind a TT. This can result in common remote devices coupled with the TT, for example, conferencing cameras, speakers, keyboards, and mice, not operating properly.